#pragma once
#ifndef GAMEMANAGER_H_
#define GAMEMANAGER_H_

#include "baseobject.h"

namespace EPOC
{
	class BaseApplication;
	class BaseObject;
	class GameManager : public BaseObject
	{
	public:
		GameManager(BaseApplication *pApplication);
		virtual ~GameManager();

		virtual bool Initialize();
		virtual void Cleanup();
		virtual bool Update(float fTimeDelta);
		
		void AddUpdateObject(BaseObject* pObject);
		void RemoveUpdateObject(BaseObject* pObject);

		inline BaseApplication* GetApplication(){ return m_pApplication;}
		
	protected:
		std::list<BaseObject *> m_rUpdateContainer;
		BaseApplication *m_pApplication;
	
	}; // class GameManager
}; // namespace EPOC

#endif